Field of the Invention
The present invention relates to an embedded device provided with a Web browser, a control method therefor, a program for implementing the control method, and a storage medium storing the program.
Description of the Related Art
As is well known, the Internet has been developed by Web servers that supply HTML (Hypertext Markup Language) document data using HTTP (Hypertext Transfer Protocol) and Web browsers as clients that acquire the HTML document data using HTTP and display the acquired data.
The most basic function of a Web server is to provide a file transfer service for sending a file in response to a file acquisition request transmitted by a client using HTTP. In this case, basically, the Web server merely reads out a static file stored therein, and sends the same, but it can also have a function of dynamically generating and sending data in response to a HTTP request (a GET request or a POST request) in addition to the basic function.
Processing performed by the Web server to dynamically generate a HTTP response as described above is referred to as server-side processing. The server-side processing can also be realized by being delegated from the Web server to external software implemented according to the CGI (Common Gateway Interface) specification, the Java (registered trademark) Servlet specification, or the like. The external software to which the processing is delegated from the Web server according to the Interface specification is implemented as an execution type program executed by a server machine, a program described in an instruction language for the Java or another virtual machine, or a text format script executed by an interpreter. Examples of the text format scripts executed by an interpreter (script execution environment) include a shell script, JavaScript, PHP (Personal HomePage or PHP: Hypertext Processor), and so forth. To provide a script for linkage to a Web server for execution of the server-side processing is referred to as server-side scripting.
A HTML document can express a form for requiring user input, using a form element (FORM) in HTML. When a form element-based form is displayed on a Web browser and a user inputs data into the form and instructs submission thereof, the data input to the form is sent as a HTTP request (a GET request or a POST request) to a Web server. Accordingly, by configuring a HTML document to be sent from the Web server to a client such that the HTML document includes a form that can receive a user instruction for server-side processing, it is possible to provide a kind of user interface for enabling the user to interact with the server-side processing via a Web browser (the form can also be configured such that a client-side file input to the form is uploaded to the server). The server-side processing enables not only dynamic generation of a HTTP response, but also execution of processing for providing some service as a side effect.
Thus, the user is allowed to use business logic, back-end services, and the like that exist on the server side via a Web browser. Consequently, a model for a distributed system is widely used in which HTML is used as a kind of user interface description language and a client-side Web browser is given charge of only user interface processing for services for which the major part of processing is executed on a server side (the small-sized client in such a model is referred to as a thin client).
Client-side processing is also well known in which computation is performed on a Web browser side. In the client-side processing, software for carrying out some processing is sent from a Web server to a client in response to a request from the Web browser, and the software is executed on a processing system incorporated in the Web browser. In this case, dynamic document generation and interaction with the user are achieved by the client-side processing executed on the Web browser, and hence communication with the server is not absolutely necessary. An object format program described in the instruction language for the Java virtual machine and implemented according to an interface specification based on a Java Applet operates on the Java virtual machine incorporated as a plug-in in the Web browser. Further, conventionally, many Web browsers have a JavaScript interpreter incorporated therein as a text based scripting language. The client-side JavaScript is a combination of a DOM (Document Object Model) defined by the Web browser and a script function of the JavaScript interpreter. An approach by a scripting language, such as JavaScript, is more advantageous than an approach by a Java Applet or the like, because the scripting language is text based, and therefore it has a higher affinity for a markup language, such as HTML, and hence a provider of a HTML document content can easily provide an “executable content”. Further, a client-side JavaScript interpreter is configured to be linked to a DOM as a data structure enabling a Web browser to internally handle a document, so that the document displayed on the Web browser can be operated so as to easily provide a user with dynamic information and user interface.
The core part of the JavaScript language was standardized as ECMAScript by ECMA (European Computer Manufacturers Association). See e.g. “JavaScript The Definitive Guide, Third Edition”, David Flanagan, O'Reilly, 1998, for details of client-side processing and JavaScript.
The DOM is an object model for handling the structure of a document described in a markup language, such as HTML. Each Web browser, such as Netscape Navigator (registered trademark) or Internet Explorer (registered trademark), has conventionally provided a specific DOM to be implemented for client-side processing using JavaScript or the like. The DOM specification was standardized by the W3C (World Wide Web Consortium) such that an interface compliant with standard specifications is available for implementation by each Web browser.
Further, a Web browser for a general-purpose desktop computer captures objects and the like based on plug-ins, dynamic link libraries, and native machine codes and dynamically couple them to the execution form of the Web browser so as to expand the function of the Web browser itself.
For example, Japanese Laid-Open Patent Publication (Kokai) No. H11-187061 discloses apparatus control by server-side processing (CGI).
Further, Japanese Laid-Open Patent Publications (Kokai) Nos. H11-134125, H11-212751, H11-327834, and 2000-194531 each disclose a Web pullprint facility incorporated or embedded in a digital multi-function machine. The embedded pullprint facility includes a data-acquiring mechanism based on HTTP similar to one provided in a Web browser, and a rendering mechanism, such as HTML and prints out a content acquired from a URL (Uniform Resource Locator) designated by the user.
Further, a system is known in which various embedded devices, which incorporate an operating system or software, comprised of firmware provided with the Java virtual machine can acquire and dynamically load a program described in an object format (bytecode) of the Java virtual machine from a server, and execute the same.
However, a Web browser incorporated in the firmware of such an embedded device is required to be used in a different way from a Web browser for general-purpose desktop computers. This is because calculation resources (a CPU, a memory, an external storage, the size and resolution of a display, a keyboard, a pointing device, etc.) of an embedded device are generally inferior in function and performance to a general-purpose desktop computer. Further, the general-purpose desktop computer is placed on a desk to cope with various kinds of jobs so that the user can sit on a chair and operate the computer with composure, whereas a multi-function machine, such as a digital copying machine, is to be placed in a corner of an office and shared by a plurality of staff members, for example, i.e. used in a particular situation and a particular mode of use. Therefore, to use a Web browser incorporated in an embedded device to perform general net-surfing or browsing is not impossible, but cannot be said to be an optimal use of the Web browser.
Therefore, when the Web browser incorporated in the embedded device is used, it is required to browse a content linked and optimally adapted to the intrinsic function of the embedded device.
Examples of application of the embedded browser include sales of consumables, reference to manuals, diagnosis of an apparatus, and usage of other services. For example, if the remaining amount of toner in a multi-function machine is small when a Web browser incorporated in the machine displays a portal page provided by a distributor of the machine, it is effective to provide fine services intimately related to specific use of the machine in a customer environment e.g. by dynamically displaying a guide recommending online purchase of toner. Further, when the Web browser incorporated in the machine displays a page where the latest version of a manual of the apparatus, a collection of exemplary cases of usage, a know-how collection, etc. are disclosed, it is also effective to provide fine services e.g. by selectively displaying information related to the machine or a group of options actually incorporated in the machine. In many cases, for maintenance or repair of the machine, it is required to refer to or change a variety of parameters managed as internal data by firmware incorporated in the machine, or to call a plurality of diagnosis codes, setup codes, or the like built in the firmware in appropriate order and combination. Moreover, appropriate processing to be executed for maintenance or repair of the machine can differ depending on the mounting conditions of optional units or the version of the firmware. The appropriate processing may be changed with an increase in stored know-how. For the above described reasons, it is difficult for an end user or a customer engineer at a maintenance or repair site to grasp everything and perform optimal processing, or it requires a great cost. Therefore, if for the management processing of the machine, access is made from the Web browser incorporated therein in a customer environment to a page disclosing machine or apparatus management information provided by a service company, it enables the end user or the customer engineer to view an optimal operation manual dynamically reflecting the current status of the machine. Further, if a user interface page carefully prepared by the service company in accordance with most recent know-how is displayed according to the kind of the machine and the status of the same, to allow the end user or the customer engineer to give an execution instruction for referring to or changing parameters within the machine or to select a combination of a diagnosis code and a setup code, it is very convenient to the end user or the customer engineer.
As is apparent from the above described examples, it is desired to dynamically provide a content optimized for access from the embedded browser and linked to the function and status of the machine in a manner flexibly expandable by a server. However, in the case where the user does not desire, from the viewpoint of protection of privacy, that information of the machine is sent to a server (content provider), the server-side processing performed using a CGI program or the like is not suitable, and hence it is necessary to achieve the provision of such a content by the client-side processing.
Further, consideration must be given to ensure that a content acquired from outside via a network can be fully linked to the function and status of an apparatus and at the same time security of the embedded device is not threatened.
Furthermore, in most cases, the browser incorporated in the embedded device is implemented as firmware on a real-time OS, which makes it difficult to achieve expansion of the function of the browser itself, as is distinct from a browser for general-purpose desktop computers, by capturing objects or the like based on plug-ins, dynamic link libraries, or native machine codes and dynamically coupling the objects or the like to the execution form of the browser. Therefore, it is desirable that the function of the browser itself is fixed before shipment of the system, and provision of a dynamic content linked to the function and status of the apparatus is flexibly and expandably performed by the server.
In Japanese Laid-Open Patent Publication (Kokai) No. H11-187061 referred to above, however, only apparatus control by the server-side processing (CGI) is disclosed, but no description is given of apparatus control by the client-side processing on the embedded browser.
Further, as described hereinabove, the approach by the Java virtual machine or the like is inferior to the approach by a scripting language, such as JavaScript, in respect of affinity for a text based markup language, such as HTML, and accessibility from a program to the DOM, of a source document incorporating (or associated with) the program, and hence is not easy to use by a content provider that provides a distributed system utilizing the browser incorporated in the embedded device.